{
  //声明函数   T 为泛型参数. 『又称为类型参数』. 类型参数的名字自定义. 常用的参数名有: T, P, K
  function createArray<T>(count: number, value:T){
    //声明一个数组
    let result:T[] = [];
    //循环
    for(let i=0;i<count;i++){
      //向数组中压入元素值 value
      result.push(value);
    }
    //返回
    return result;
  }
  //调用函数
  // let result = createArray(5, 'love');
  // result[0]. // 没有代码提示
  // result[0].toFixed(2);//没有错误提醒

  //添加泛型参数的调用
  // let result = createArray<string>(5, 'love');
  // result[0]. //这里有代码提示
  // result[0].toFxied(2); //这里有错误提醒

  //传入其他类型
  interface AirPlane{
    name: string;
    weight: string
  }

  let result = createArray<AirPlane>(10, {
    name: 'C919',
    weight: '20吨'
  });

  // result[0].


}

{
  function createArray<T, P>(a: T, b: P):[T, P]{
    return [a, b];
  }

  createArray<number, string>(1111, '全网最低价~');
}

